package com.yang.mapper;

import com.yang.entity.Cart;
import org.apache.ibatis.annotations.*;

import java.util.List;


@Mapper
public interface CartMapper {

    /**
     * 购物车添加商品
     *
     * @param userId      用户id
     * @param commodityId 商品id
     * @param skuId       sku_id
     * @param quantity    购物车商品数量
     */
    @Insert("insert into cart(cart_id, user_id, commodity_id,sku_id, cart_quantity) " +
            "values(default, #{userId}, #{commodityId}, #{skuId}, #{quantity})")
    void addCart(int userId, int commodityId, int skuId, int quantity);

    /**
     * 根据购物车id删除购物车商品,使用xml文件映射
     *
     * @param cartIds 购物车id
     */
    void deleteCart(List<Integer> cartIds);

    /**
     * 根据用户id获取购物车列表，使用xml文件映射
     *
     * @param userId 用户id
     * @return 商品首图、数量、sku_id
     */
    List<Cart> getCartListByUserId(int userId);

    /**
     * 根据购物车id以及用户id获取购物车商品
     *
     * @param cartId 购物车id
     * @return 购物车商品
     */
    @Select("select * from cart where cart_id = #{cartId} and user_id = #{userId};")
    Cart getCartById(int cartId, int userId);

    /**
     * 更新购物车商品数量
     *
     * @param cartId   购物车id
     * @param quantity 购物车商品数量
     */
    @Update("update cart set cart_quantity = #{quantity} where cart_id = #{cartId};")
    void updateCartQuantity(int cartId, int quantity);
}
